package code06_数组;

/**
 * @author 黄衡熙
 * @version 1.0
 * @date 2025年07月17日10:11
 */
public class Test01_数组的定义方式 {

    public static void main(String[] args) {
        test04();
    }

    public static void test01() {
        // 定义方式一:数据类型[] 变量名 = new 数据类型[数组长度]
        // 数组长度:表示数组中元素的数量
        // 定义方式二:数据类型 变量名[] = new 数据类型[数组长度]
        int[] nums = new int[5];
        String hobbies[] = new String[3];
        // 在数组中,可以通过变量名[下标]去访问对应的元素
        // 数组的元素是有顺序的,按照顺序进行存储
        // 第一个元素下标从0开始,后面的下标依次自增1
        // 在数组中,当定义了数组之后,如果没有为数组的元素赋值
        // 则会根据元素的类型自动设置默认值
        // 整数型默认值为:0
        // 小数型默认值为:0.0
        // 字符串默认值为:null
        System.out.println(nums[0]);
        System.out.println(hobbies[0]);
        double[] ds = new double[3];
        System.out.println(ds[0]);
        boolean[] bs = new boolean[2];
        System.out.println(bs[1]);
        char[] cs = new char[3];
        System.out.println(cs[2]);
    }

    public static void test02() {
        int[] nums = new int[3];
        // 可以通过变量名[下标] = 值的方式为指定元素赋值
        nums[0] = 1;
        nums[1] = 2;
        nums[2] = 3;
        // 下标最大值为长度-1
        System.out.println(nums[0]);
        System.out.println(nums[1]);
        System.out.println(nums[2]);
        // 当下标的值超出了数组的范围时,其编译不会报错,但是运行时会报错
        // 错误为:ArrayIndexOutOfBoundsException数组下标越界
        nums[3] = 4;
    }

    public static void test03() {
        // 定义方式三:可以在声明数组的同时为数组的元素赋值
        // 语法:数据类型[] 变量名 = new 数据类型[]{元素1,元素2,元素3...}
        // 此时不需要指定长度,其长度即为元素的数量
        int[] nums = new int[]{1, 2, 3, 4, 5};
        System.out.println(nums[0]);
        System.out.println(nums[1]);
        System.out.println(nums[2]);
        System.out.println(nums[3]);
        System.out.println(nums[4]);
        System.out.println(nums[5]);
    }

    public static void test04() {
        // 简写方式:数据类型[] 变量名 = {元素1,元素2,元素3...}
        String[] hobbies = {"吃饭", "睡觉", "打豆豆"};
        System.out.println(hobbies[0]);
        System.out.println(hobbies[1]);
        System.out.println(hobbies[2]);
    }
}